function checkRutField(input) {
	console.log("rut");
	var rut = jQuery.trim(jQuery(input).val());
	if (rut == '') {
		return true;
	}
	var srut = rut.replace(/\./g, ' ');
	srut = srut.replace(/-/g, ' ');
	if (srut.length < 8)
		return false;

	var original = rut;
	var tmpstr = "";
	for (var i = 0; i < rut.length; i++)
		if (rut.charAt(i) != ' ' && rut.charAt(i) != '.'
				&& rut.charAt(i) != '-')
			tmpstr = tmpstr + rut.charAt(i);
	rut = tmpstr;
	largo = rut.length;
	// [VARM+]
	tmpstr = "";
	for (i = 0; rut.charAt(i) == '0'; i++)
		;
	for (; i < rut.length; i++)
		tmpstr = tmpstr + rut.charAt(i);
	rut = tmpstr;
	largo = rut.length;
	// [VARM-]
	var invertido = "";
	for (i = (largo - 1), j = 0; i >= 0; i--, j++)
		invertido = invertido + rut.charAt(i);
	var drut = "";
	drut = drut + invertido.charAt(0);
	drut = drut + '-';
	cnt = 0;
	for (i = 1, j = 2; i < largo; i++, j++) {
		if (cnt == 3) {
			drut = drut + '.';
			j++;
			drut = drut + invertido.charAt(i);
			cnt = 1;
		} else {
			drut = drut + invertido.charAt(i);
			cnt++;
		}
	}
	invertido = "";
	for (i = (drut.length - 1), j = 0; i >= 0; i--, j++)
		invertido = invertido + drut.charAt(i);

	if (checkDV(input, rut, original)) {
		jQuery(input).val(invertido);
		return true;
	}
	return false;
}
function checkDV(input, crut, original) {
	largo = crut.length;
	if (largo < 2) {
		// alert("Debe ingresar el rut completo.");
		// document.frm.rut_aux.focus();
		return false;
	}
	if (largo > 2)
		rut = crut.substring(0, largo - 1);
	else
		rut = crut.charAt(0);
	dv = crut.charAt(largo - 1);
	checkCDV(dv);
	if (rut == null || dv == null)
		return 0;
	var dvr = '0';
	suma = 0;
	mul = 2;
	for (var i = rut.length - 1; i >= 0; i--) {
		suma = suma + rut.charAt(i) * mul;
		if (mul == 7)
			mul = 2;
		else
			mul++;
	}
	res = suma % 11;
	if (res == 1)
		dvr = 'k';
	else if (res == 0)
		dvr = '0';
	else {
		dvi = 11 - res;
		dvr = dvi + "";
	}
	if (dvr != dv.toLowerCase()) {
		// alert("EL rut es incorrecto.");
		jQuery(input).val(original);
		return false;
	}
	return true;
}

function checkCDV(dvr) {
	dv = dvr + "";
	return true;
}

function doSearchProperty(url, numeroPropiedad) {
	var result=false;
	$.ajax({
		url : url,
		data : {
			'numeroPropiedad' : numeroPropiedad
		},
		async : false,
		success : function(data) {
			result=data.result != "true";
		}
	});
	return result;

}


jQuery.validator.addMethod("rut", function(value, element, params) {
	return checkRutField(element);
}, jQuery.validator.format("El rut es inválido"));
jQuery.validator.addMethod("numeroExiste", function(value, element, params) {
	return doSearchProperty(params,value);
}, jQuery.validator.format("El número de propiedad ya esta registrado"));